package com.cw.mapper;

import com.cw.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * @author cw
 * @since 2021/7/14 15:43
 * @deprecated
 */
@Component
public interface UserMapper {

    /**
     * 用户登录
     *
     * @param userCode
     * @param userPassword
     * @return
     */
    User getLoginUser(@Param("userCode") String userCode, @Param("userPassword") String userPassword);

    /**
     * 修改用户密码
     *
     * @param id
     * @param userPassword
     * @return
     */
    int updatePwd(@Param("id") int id, @Param("userPassword") String userPassword);

    /**
     *获取用户数量
     * @param userName
     * @param userRole
     * @return
     */
    int getUserCount(@Param("userName") String userName, @Param("userRole") int userRole);


    /**
     * 获取用户列表
     * @param userName
     * @param userRole
     * @param currentPageNo
     * @param pageSize
     * @return
     */
    List<User> getUserList(@Param("userName") String userName,
                           @Param("userRole") int userRole,
                           @Param("currentPageNo") int currentPageNo,
                           @Param("pageSize") int pageSize);

    /**
     * 通过id查询用户
     * @param id
     * @return
     */
    User getUserById(@Param("id") int id);

    /**
     * 通过id修改用户
     * @param userName
     * @param gender
     * @param birthday
     * @param phone
     * @param address
     * @param userRole
     * @param modifyBy
     * @param date
     * @param id
     * @return
     */
    int modifyUserByID(
            @Param("userName") String userName,
            @Param("gender") int gender,
            @Param("birthday") String birthday,
            @Param("phone") String phone,
            @Param("address") String address,
            @Param("userRole") int userRole,
            @Param("modifyBy") int modifyBy,
            @Param("modifyDate") Date date,
            @Param("id") int id
    );

    /**
     * 通过id删除用户
     * @param id
     * @return
     */
    int deleteUserByID(@Param("id") int id);

    /**
     * 查询用户名是否存在
     * @param userCode
     * @return
     */
    int selectUserCodeExist(@Param("userCode") String userCode);

    /**
     * 新增用户
     * @param user
     * @return
     */
    int addUser(User user);

}

